package com.ruoyi.common.utils;


import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;

import java.io.IOException;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Objects;

/**
 * bigDecimal 格式化为2位小数
 */
public class CustomerBigDecimalSerialize extends JsonSerializer<BigDecimal> {

    @Override
    public void serialize(BigDecimal value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
        //#.00 如果是0的话，会变成.00   value.compareTo(BigDecimal.ZERO) !=0
        DecimalFormat nf = new DecimalFormat("0.00");
        if(Objects.nonNull(value)) {
            String str = nf.format(value);
//            System.out.println(value +","+str+","+new BigDecimal(str));
//            jsonGenerator.writeNumber(new BigDecimal(str));
              jsonGenerator.writeString(str);
            //去除0后缀,如果想统一进行保留精度，也可以采用类似处理
        }else {//如果为null的话，就写null
            jsonGenerator.writeString("0.00");
        }
    }
}
